<?php
interface N_DB_Driver_Interface
{
	/**
	 * 解析数组形式的数据库连接选项
	 *
	 * @param array $dsnArray
	 */
	public function parseDSN($dsnArray);
	
	/**
	 * 选择数据库
	 *
	 * @param string $dbName
	 */
	public function selectDb($dbName);
	
	/**
	 * 将错误信息从数组形式转化成字符串形式
	 *
	 * @return string
	 */
	public function getErrorMsg();
	
	/**
	 * 执行sql语句,失败则返回false,成功返回对象本身
	 *
	 * @param string $sql
	 * @return mixed
	 */
	public function query($sql);
	
	/**
	 * 执行sql语句,只返回影响的行数,delete,update,insert语句推荐使用,失败返回0
	 *
	 * @param string $sql
	 * @return integer
	 */
	public function exec($sql);
	
	public function beginTransaction();
	
	public function commit();
	
	public function rollBack();
	
	/**
	 * 一次取回所有返回行
	 *
	 * @param int $mode
	 * @return array
	 */
	public function fetchAll($mode = MYSQL_BOTH);
	
	/**
	 * 每次取回一行结果,返回数组偏移量从0开始
	 *
	 * @param int $mode
	 * @return array
	 */
	public function fetchRow();
	
	/**
	 * 每次取回一行结果,可以指定返回数组格式
	 *
	 * @param int $mode
	 * @return array
	 */
	public function fetch($mode = MYSQL_BOTH);
	
	/**
	 * 调试模式,可以打印执行的sql语句
	 *
	 * @param bool $debug
	 */
	public function setDebug($debug = true);
}